package inheritance;
/**当一个 class 没有通过 extends 关键字显式指定父类时，其直接父类是 java.lang.Object 类 */
class Vehicle {
    //父类中的私有属性子类不能访问，需要通过get和set进行访问
    private String frame;//架子
    private String wheel;//轮子

    public String getFrame(){
        return this.frame;
    }
    public void setFrame(String frame){
        this.frame = frame;
    }

    public String getWheel(){
        return this.wheel;
    }
    public void setWheel(String wheel){
        this.wheel = wheel;
    }

}

/** 子类可以继承父类中的一切实例成员，但能不能访问要看修饰符 */
class Bicycle extends Vehicle {
    // 当 创建 子类类型 的对象时，也会为 父类中声明的 实例字段 开辟空间 并赋予默认值
}


/** 子类可以在继承父类原有实例成员的基础上，对父类进行扩展 */
class Car extends Vehicle{
    public String locator ; // 定位器，比如 使用 北斗定位 、使用 GPS 定位
    public String sofa;

    public void info(){
        System.out.println(this.getFrame() + " , " + this.getWheel() + " , " + this.locator + " , " + this.sofa);
        // System.out.println( this.frame + " , " + this.wheel + " , " + this.locator + " , " + this.sofa );
    }
}

public class VehicleTest extends Vehicle{
    public static void main(String[] args) {
        Bicycle b = new Bicycle();
        b.setFrame("钢铁");
        System.out.println(b.getFrame());

        System.out.println("~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~");

        Car c = new Car();
        c.setFrame("钛合金");
        c.setWheel("四个轮子");

        c.locator = "北斗定位系统";
        c.sofa = "坐上去贼爽的沙发";

        c.info();
    }

}
